package com.ruoyi.repair.mapper;

import java.util.List;
import com.ruoyi.repair.domain.TFaultReport;

/**
 * 故障报修Mapper接口
 * 
 * @author ruoyi
 * @date 2025-09-29
 */
public interface TFaultReportMapper 
{
    /**
     * 查询故障报修
     * 
     * @param reportNo 故障报修主键
     * @return 故障报修
     */
    public TFaultReport selectTFaultReportByReportNo(String reportNo);

    /**
     * 查询故障报修列表
     * 
     * @param tFaultReport 故障报修
     * @return 故障报修集合
     */
    public List<TFaultReport> selectTFaultReportList(TFaultReport tFaultReport);

    /**
     * 新增故障报修
     * 
     * @param tFaultReport 故障报修
     * @return 结果
     */
    public int insertTFaultReport(TFaultReport tFaultReport);

    /**
     * 修改故障报修
     * 
     * @param tFaultReport 故障报修
     * @return 结果
     */
    public int updateTFaultReport(TFaultReport tFaultReport);

    /**
     * 删除故障报修
     * 
     * @param reportNo 故障报修主键
     * @return 结果
     */
    public int deleteTFaultReportByReportNo(String reportNo);

    /**
     * 批量删除故障报修
     * 
     * @param reportNos 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTFaultReportByReportNos(String[] reportNos);

    /**
     * 统计故障类型使用情况
     * 
     * @param faultTypeCode 故障类型编码
     * @return 使用次数
     */
    public int countByFaultType(String faultTypeCode);

    /**
     * 统计报修类型使用情况
     * 
     * @param reportTypeCode 报修类型编码
     * @return 使用次数
     */
    public int countByReportType(String reportTypeCode);

    /**
     * 统计紧急程度使用情况
     * 
     * @param urgencyCode 紧急程度编码
     * @return 使用次数
     */
    public int countByUrgency(String urgencyCode);

    /**
     * 检查设备是否有未完成的报修
     * 
     * @param assetNo 设备编号
     * @return 未完成报修数量
     */
    public int countUnfinishedReportsByAssetNo(String assetNo);
}
